277156b9aeb466527592ef4267abcb2ea550e176,plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/auxiliary/GrListOrMapImpl.java,GrListOrMapImpl,getType,#,45
Before Change
public PsiType getType() {
if (isMapLiteral()) {
return getManager().getElementFactory().createTypeByFQClassName("java.util.Map", getResolveScope());
}
PsiElement parent = getParent();
After Change
}
public PsiType getType() {
PsiManager manager = getManager();
if (isMapLiteral()) {
return manager.getElementFactory().createTypeByFQClassName("java.util.Map", getResolveScope());
}
PsiElement parent = getParent();
if (parent.getParent() instanceof GrVariableDeclaration) {
GrTypeElement typeElement = ((GrVariableDeclaration) parent.getParent()).getTypeElementGroovy();
if (typeElement != null) {
PsiType declaredType = typeElement.getType();
if (declaredType instanceof PsiArrayType) return declaredType;
}
}
PsiClass listClass = manager.findClass("java.util.List", getResolveScope());
if (listClass != null) {
PsiTypeParameter[] typeParameters = listClass.getTypeParameters();
if (typeParameters.length == 1) {
GrExpression[] initializers = getInitializers();
PsiType initializerType = initializers.length > 0 ? initializers[0].getType() : null;
PsiSubstitutor substitutor = PsiSubstitutor.EMPTY.put(typeParameters[0], initializerType);
return manager.getElementFactory().createType(listClass, substitutor);
} else {
return manager.getElementFactory().createType(listClass);
}
}
return null;
}
private boolean isMapLiteral() {